//
//  YFMobManager.h
//  project
//
//  Created by Winny Zhang on 2019/3/29.
//  Copyright © 2019 健健. All rights reserved.
//

#import <UIKit/UIKit.h>
#import <ShareSDK/ShareSDK.h>
#import <ShareSDKExtension/ShareSDK+Extension.h>

/**
 授权结果回调类型

 @param isSuccess 是否授权成功
 @param userInfo 回调信息
 @param message 授权除成功外的信息
 */
typedef void(^YFAuthorizeCompletion)(BOOL isSuccess, SSDKUser * _Nullable userInfo, NSString * _Nullable message);

typedef NS_ENUM(NSInteger, YFMobPlatform) {
    YFMobPlatformNone = 0,
    YFMobPlatformWechat = 1 << 0,
    YFMobPlatformQQ = 1 << 1,
    YFMobPlatformSina = 2 << 2,
};

NS_ASSUME_NONNULL_BEGIN

@interface YFMobManager : NSObject
/**
 绝对单例

 @return 单例
 */
+ (instancetype)shared;

/**
 注册当前所有平台
 */
+ (void)registerAllPlatforms;

/**
 注册第三方平台
 多个平台采用位运算方式传入
 
 @param platform 平台类型
 */
- (void) registerWith:(YFMobPlatform)platform;

/**
 Class 方法 授权登录
 无额外设置
 
 @param platform 授权登录平台
 @param completion 完成回调
 */
+ (void) authorize:(YFMobPlatform)platform completion:(YFAuthorizeCompletion)completion;

/**
 Class 方法 授权登录
 有额外设置
 
 @param platform 授权登录平台
 @param settings 额外设置信息
 @param completion 完成回调
 */
+ (void)authorize:(YFMobPlatform)platform settings:(NSDictionary * _Nullable)settings completion:(YFAuthorizeCompletion)completion;

/**
 实例方法 授权登录
 
 @param platform 授权登录平台
 @param settings 额外设置信息
 @param completion 完成回调
 */
- (void)authorize:(YFMobPlatform)platform settings:(NSDictionary * _Nullable)settings completion:(YFAuthorizeCompletion)completion;


/**
 分享
 @param platformType 分享的平台
 @param url 分享链接
 */
- (void)shareWithPlatformType:(SSDKPlatformType)platformType url:(NSString *)url title:(NSString*)title descripte:(NSString *)descripte;
@end

NS_ASSUME_NONNULL_END
